Skip to content

test(plugins): add duplicate metadata validation#177

Open
HitanshiThakar wants to merge 2 commits into
utksh1:mainfrom
HitanshiThakar:main
Open

test(plugins): add duplicate metadata validation#177
HitanshiThakar wants to merge 2 commits into
utksh1:mainfrom
HitanshiThakar:main

Conversation

@HitanshiThakar
Copy link
Copy Markdown

@HitanshiThakar HitanshiThakar commented May 19, 2026

Description

Added a metadata integrity test to detect duplicate plugin IDs and duplicate human-facing plugin names across all plugin metadata files.

The test scans all metadata.json files in the plugins directory and provides clear failure messages listing duplicate entries when found.

Also fixed an existing duplicate plugin display name and refreshed the plugin checksum after updating metadata.

Related Issues

Closes #116

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

Ran the backend plugin integrity test locally:

python -m pytest testing/backend/unit/test_plugin_integrity.py -v

Test result:

3 tests passed successfully

Checklist

  • My code follows the code style of this project.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.

@ai-slop-guardian
Copy link
Copy Markdown

🛡️ AI Slop Guardian Report

Signal Value
Overall AI probability 30% 🟢
Perplexity 90%
Burstiness 20%
Pattern 0%
Embedding 50%
DNA 0%
GhostAuthor 0%
SemanticCoherence 60%
Contributor trust 0/100

Verdict: Content shows 30% AI probability based on perplexity, style patterns, and deviation from repo baseline.

Detection details

Perplexity Signals:

  • Perplexity score: 16.1 (AI text typically < 30)
  • Text is statistically 83.9% more predictable than average human writing

Burstiness Signals:

  • Burstiness index: 146.72 (AI typically < 1.5, Human > 4.0)

Pattern Signals:

Embedding Signals:

  • No style index exists for this repository yet. Using neutral score.

DNA Signals:

  • Unique code signature (Max global similarity: 0.72)

GhostAuthor Signals:

  • Insufficient history for ghost author detection (need >= 3 PRs).

SemanticCoherence Signals:

  • Low semantic coherence detected (0.39)

Override with /guardian approve · Whitelist with /guardian trust @username

@HitanshiThakar
Copy link
Copy Markdown
Author

1 failing check related to SecuScan CI seems unrelated to the plugin metadata changes in this PR.
The added tests are passing locally.

Copy link
Copy Markdown
Owner

@utksh1 utksh1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Since main now normalizes parser line endings for checksum computation (see recent merges), the updated checksum here likely needs a refresh.

Please:

  • Rebase on latest main
  • Re-run python scripts/refresh_plugin_checksum.py --plugin waf_detector
  • Update checksum accordingly and ensure CI passes

The uniqueness test looks good once checksum is correct.

@utksh1 utksh1 added area:plugins Scanner plugin metadata, schemas, or plugin runtime work type:testing Testing work category bonus label level:beginner 20 pts difficulty label for small beginner-friendly PRs labels May 22, 2026
@HitanshiThakar
Copy link
Copy Markdown
Author

Done, All checks have passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:plugins Scanner plugin metadata, schemas, or plugin runtime work first-time-contributor level:beginner 20 pts difficulty label for small beginner-friendly PRs type:testing Testing work category bonus label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[PLUGINS] Add metadata lint test for duplicate plugin names

2 participants